In traditional grant counter-based arbitration schemes, each agent utilizes grant counters to limit the number of commands it can send before another agent will be allowed to send commands during a fixed arbitration session, which is the arbitration performed between grant count resets. When an agent's grant counter has expired, its request is masked. These masked requests will then be arbitrated on a fixed priority. The agents will only be able to assert a pipelined request for one clock when trying to do back-to-back cycles. This causes an unfair arbitration of the least prioritized agent in an arbitration session. If the least prioritized agent does not assert its pipelined request for the remaining number of grant counts, the grant counters will be reset before all the grant counts for the least prioritized agent expire. Thus, the least prioritized agent will only get granted the number of times the pipelined request is asserted back-to-back. This arbitration scheme penalizes the lowest priority agent that is unable to assert its pipelined request properly.